15. 什么是向量?
什么是向量?物理与计算机编程
你可能之前学过,向量是一个既有 大小又有方向 的测量值或数量。例如,沿 y 轴的距离或向西北方向的速度都是向量。
但在计算机编程中,当我们说“向量”时,我们指的仅仅是 值列表 。
这两种关于向量的定义方式实际上是密切相关的,但是在本纳米学位中,我们将从计算机科学的角度来看向量。
无人驾驶车中的向量、移动模型和卡尔曼滤波器
在物理课上,我们会有一个位置向量和一个单独的速度向量。但在计算机编程中,向量只是一个值的列表。
当使用卡尔曼滤波器公式时,粗体、小写的变量 \mathbf{x} 表示计算机编程意义上的一个向量。 \mathbf{x} 向量保存表示你的移动模型的值,如位置和速度。
在基本移动模型中,向量 \mathbf{x} 将包含有关位置和线速度的信息,如: \mathbf{x} = [x, y, v_x, v_y] 。在物理课上,这些可以用两个不同的向量表示:位置向量和速度向量。
有些更复杂的移动模型可能会考虑偏航率。偏航率考虑以车辆中心为中心的旋转角度和角速度,例如: \mathbf{x} = [x, y, v_x, v_y, \psi, \dot{\psi}] 。
因此,要使用卡尔曼滤波方程并执行对象跟踪,你必须熟悉向量并学会如何使用它们编写程序。